home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Info-Mac 1992 August
/
info-mac-1992.iso
/
Applications (app)
/
STvi
/
stevie 3.10
/
help.c
< prev
next >
Wrap
Text File
|
1991-01-03
|
9KB
|
308 lines
/* $Header: /nw/tony/src/stevie/src/RCS/help.c,v 1.9 89/08/06 09:50:09 tony Exp $
*
* Routine to display a command summary.
*/
#include "stevie.h"
extern char *Version;
static int helprow;
#ifdef HELP
static void longline();
bool_t
help()
{
/***********************************************************************
* First Screen: Positioning within file, Adjusting the Screen
***********************************************************************/
outstr(T_ED);
windgoto(helprow = 0, 0);
longline("\
Positioning within file\n\
=======================\n\
^F Forward screenfull Developed by:\n\
^B Backward screenfull Tony Andrews\n");
longline("\
^D scroll down half screen\n\
^U scroll up half screen Based on a program by:\n");
longline("\
G Goto line (end default) Tim Thompson\n\
]] next function\n\
[[ previous function\n\
/re next occurence of regular expression 're'\n");
longline("\
?re prior occurence of regular expression 're'\n\
n repeat last / or ?\n\
N reverse last / or ?\n\
% find matching (, ), {, }, [, or ]\n");
longline("\
\n\
Adjusting the screen\n\
====================\n\
^L Redraw the screen\n\
^E scroll window down 1 line Macintosh Port by\n\
^Y scroll window up 1 line Earle R. Horton\n");
longline("\
z<RETURN> redraw, current line at top\n\
z- ... at bottom\n\
z. ... at center\n");
windgoto(0, 52);
longline(Version);
windgoto(helprow = Rows-2, 47);
longline("<Press space bar to continue>\n");
windgoto(helprow = Rows-1, 47);
longline("<Any other key will quit>");
if ( vgetc() != ' ' )
return TRUE;
/***********************************************************************
* Second Screen: Character positioning
***********************************************************************/
outstr(T_ED);
windgoto(helprow = 0, 0);
longline("\
Character Positioning\n\
=====================\n\
^ first non-white\n\
0 beginning of line\n\
$ end of line\n\
h backward\n");
longline("\
l forward\n\
^H same as h\n\
space same as l\n\
fx find 'x' forward\n");
longline("\
Fx find 'x' backward\n\
tx upto 'x' forward\n\
Tx upto 'x' backward\n\
; Repeat last f, F, t, or T\n");
longline("\
, inverse of ;\n\
| to specified column\n\
% find matching (, ), {, }, [, or ]\n");
windgoto(helprow = Rows-2, 47);
longline("<Press space bar to continue>\n");
windgoto(helprow = Rows-1, 47);
longline("<Any other key will quit>");
if ( vgetc() != ' ' )
return TRUE;
/***********************************************************************
* Third Screen: Line Positioning, Marking and Returning
***********************************************************************/
outstr(T_ED);
windgoto(helprow = 0, 0);
longline("\
Line Positioning\n\
================\n\
H home window line\n\
L last window line\n\
M middle window line\n");
longline("\
+ next line, at first non-white\n\
- previous line, at first non-white\n\
CR return, same as +\n\
j next line, same column\n\
k previous line, same column\n");
longline("\
\n\
Marking and Returning\n\
=====================\n\
`` previous context\n\
'' ... at first non-white in line\n");
longline("\
mx mark position with letter 'x'\n\
`x to mark 'x'\n\
'x ... at first non-white in line\n");
longline("\n\
Undo & Redo\n\
=============\n\
u undo last change\n\
U restore current line\n\
. repeat last change\n");
windgoto(helprow = Rows-2, 47);
longline("<Press space bar to continue>\n");
windgoto(helprow = Rows-1, 47);
longline("<Any other key will quit>");
if ( vgetc() != ' ' )
return TRUE;
/***********************************************************************
* Fourth Screen: Insert & Replace,
***********************************************************************/
outstr(T_ED);
windgoto(helprow = 0, 0);
longline("\
Insert and Replace\n\
==================\n\
a append after cursor\n\
i insert before cursor\n\
A append at end of line\n\
I insert before first non-blank\n");
longline("\
o open line below\n\
O open line above\n\
rx replace single char with 'x'\n\
R replace characters\n");
longline("\
\n\
Words, sentences, paragraphs\n\
============================\n\
w word forward\n\
b back word\n\
e end of word\n\
) to next sentence (not yet)\n\
} to next paragraph (not yet)\n");
longline("\
( back sentence (not yet)\n\
{ back paragraph (not yet)\n\
W blank delimited word\n\
B back W\n\
E to end of W\n");
windgoto(helprow = Rows-2, 47);
longline("<Press space bar to continue>\n");
windgoto(helprow = Rows-1, 47);
longline("<Any other key will quit>");
if ( vgetc() != ' ' )
return TRUE;
/***********************************************************************
* Fifth Screen: Misc. operations,
***********************************************************************/
outstr(T_ED);
windgoto(helprow = 0, 0);
longline("\
Miscellaneous Commands\n\
======================\n");
longline("\
:w write back changes\n\
:wq write and quit\n\
:x write if modified, and quit\n\
:q quit\n\
:q! quit, discard changes\n\
:e name edit file 'name'\n");
longline("\
:e! reedit, discard changes\n\
:e # edit alternate file\n\
:w name write file 'name'\n");
longline("\
:n edit next file in arglist\n\
:N edit prior file in arglist\n\
:n args specify new arglist (not yet)\n\
:rew rewind arglist\n\
:f show current file and lines\n");
longline("\
:f file change current file name\n\
:g/pat/p|d global command (print or delete only)\n\
:s/p1/p2/ text substitution (trailing 'g' optional)\n\
");
longline("\
:ta tag to tag file entry 'tag'\n\
^] :ta, current word is tag\n\
:sh run an interactive shell\n\
:!cmd execute a shell command\n\
");
windgoto(helprow = Rows-2, 47);
longline("<Press space bar to continue>\n");
windgoto(helprow = Rows-1, 47);
longline("<Any other key will quit>");
if ( vgetc() != ' ' )
return TRUE;
/***********************************************************************
* Sixth Screen: Operators, Misc. operations, Yank & Put
***********************************************************************/
outstr(T_ED);
windgoto(helprow = 0, 0);
longline("\
Operators (double to affect lines)\n\
==================================\n\
d delete\n\
c change\n");
longline("\
< left shift\n\
> right shift\n\
y yank to buffer\n\
! filter lines\n");
longline("\n\
Miscellaneous operations\n\
========================\n\
C change rest of line\n\
D delete rest of line\n\
s substitute chars\n");
longline("\
S substitute lines (not yet)\n\
J join lines\n\
x delete characters\n\
X ... before cursor\n");
longline("\n\
Yank and Put\n\
============\n\
p put back text\n\
P put before\n\
Y yank lines");
windgoto(helprow = Rows-1, 47);
longline("<Press any key>");
(void) vgetc();
return TRUE;
}
static void
longline(p)
char *p;
{
register char *s;
for ( s = p; *s ;s++ ) {
if ( *s == '\n' )
windgoto(++helprow, 0);
else
outchar(*s);
}
}
#else
bool_t
help()
{
msg("Sorry, help not configured");
return FALSE;
}
#endif